import store from '../store' // store

export function getTopIconDistance() {
  uni.getSystemInfo({
    success: (res) => {
      const navBarHeight = 90 // 导航栏的高度
      let useHeight = res.screenHeight - navBarHeight// 可以使用的页面高度【去除顶部导航】
      let tabBarHeight = 50 + res.safeAreaInsets.bottom // tabbar的高度 + 安全区域高度
      let mainSearchHeight = useHeight - tabBarHeight - 60 // 有tabBar，有搜索框的页面高度
      let mainHeight = useHeight - tabBarHeight // 有tabBar，没有搜索框的页面高度
      let noTabSearchHeight = useHeight - res.safeAreaInsets.bottom - 60 // 没有tabBar，有搜索框的页面高度
      let noTabMainHeight = useHeight - res.safeAreaInsets.bottom // 没有tabBar，没有搜索框的页面高度

      store.commit('HEIGHT_DATA', {
        mainHeight,
        navBarHeight,
        noTabMainHeight,
        mainSearchHeight,
        noTabSearchHeight,
        safeHeight: res.safeAreaInsets.bottom,
        tabBarHeight
      }) 
    },
    fail: (err) => {
    }
  })
}

// 加法
export function numberAdd(arg1, arg2) {
  if ((!arg1 || !arg2) && arg1 != 0 && arg2 != 0) {
    console.log('Error: 加法需要传入2个数字')
    return
  }
  let arg1Length = 0 // a的小数部分长度
  let arg2Length = 0 // b的小数部分长度
  try {
    arg1Length = arg1.toString().split('.')[1].length
  } catch (f) { }
  try {
    arg2Length = arg2.toString().split('.')[1].length
  } catch (f) { }
  
  let resNum = 10 ** Math.max(arg1Length, arg2Length) // 保证a、b为整数的最小10次幂
  return (arg1 * resNum + arg2 * resNum) / resNum
}

// 减法
export function numberSub(arg1, arg2) {
  if ((!arg1 || !arg2) && arg1 != 0 && arg2 != 0) {
    console.log('Error: 减法运算需要传入2个数字')
    return
  }
  let arg1Length = 0 // a的小数部分长度
  let arg2Length = 0 // b的小数部分长度
  try {
    arg1Length = arg1.toString().split('.')[1].length
  } catch (f) { }
  try {
    arg2Length = arg2.toString().split('.')[1].length
  } catch (f) { }

  let resNum = 10 ** Math.max(arg1Length, arg2Length) //保证a、b为整数的最小10次幂
  return (arg1 * resNum - arg2 * resNum) / resNum
}

// 乘法
export function numberMul(arg1, arg2) {
  if ((!arg1 || !arg2) && arg1 != 0 && arg2 != 0) {
    console.log('Error: 乘法运算需要传入2个数字')
    return
  }
  let arg1Length = 0 // a的小数部分长度
  let arg2Length = 0 // b的小数部分长度
  try {
    arg1Length = arg1.toString().split('.')[1].length
  } catch (f) { }
  try {
    arg2Length = arg2.toString().split('.')[1].length
  } catch (f) { }

  return (Number(arg1.toString().replace('.', '')) * Number(arg2.toString().replace('.', ''))) / (10 ** (arg1Length + arg2Length))
}

// 除法
export function numberDiv(arg1, arg2) {
  if ((!arg1 || !arg2) && arg1 != 0) {
    console.log('Error: 减法运算需要传入2个数字')
    return
  }
  let arg1Length = 0 // a的小数部分长度
  let arg2Length = 0 // b的小数部分长度
  try {
    arg1Length = arg1.toString().split('.')[1].length
  } catch (f) { }
  try {
    arg2Length = arg2.toString().split('.')[1].length
  } catch (f) { }

  const molecule = Number(arg1.toString().replace('.', '')) * (10 ** (arg1Length + arg2Length))
  const denominator = Number(arg2.toString().replace('.', '')) * (10 ** (arg1Length + arg2Length))
  return molecule / denominator / (10 ** (arg1Length - arg2Length))
}